/*
 * 文件名：MessageDecoder.java	 
 * 时     间：上午8:49:50
 * 作     者：Administrator       
 * 版     权： 2012-2022 湖南智软网络科技, 公司保留所有权利.
 * 联     系：http://www.073586.com/
 */
package com.cz073586.message.websocket356.converts;

import javax.websocket.DecodeException;
import javax.websocket.Decoder;
import javax.websocket.EndpointConfig;

import com.cz073586.message.websocket356.transfer.TransferVo;
import com.cz073586.tools.util.JsonUtil;
import com.cz073586.tools.util.Log4jUtil;

/**
 * 类描述:这里是类描述
 * 
 * @ClassName: MessageDecoder
 * @author Administrator
 * @date 2015年7月21日 上午8:49:50
 */
public class MessageDecoder implements Decoder.Text<TransferVo<Object>>
{
	
	private static final Log4jUtil log = Log4jUtil
			.getLog4j(MessageDecoder.class);
	
	@Override
	public void init(EndpointConfig endpointConfig)
	{
		if (log.isDebugEnabled())
		{
			log.info("starting MessageDecoder init in websocket.");
		}
	}
	
	@Override
	public void destroy()
	{
		if (log.isDebugEnabled())
		{
			log.info("starting MessageDecoder destroy in websocket.");
		}
	}
	
	@SuppressWarnings("unchecked")
	@Override
	public TransferVo<Object> decode(String s) throws DecodeException
	{
		TransferVo<Object> result = new TransferVo<Object>();
		try
		{
			result = JsonUtil.fromJson(s, TransferVo.class);
		} catch (Throwable t)
		{
			log.error("websocket convert:", t);
		}
		result.setKeyWord(s);
		return result;
	}
	
	/**
	 * 全局转换标记
	 */
	@Override
	public boolean willDecode(String s)
	{
		
		return true;
	}
	
}
